package cn.teduymdj.jxc.pojo.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商品实体的标准VO类
 *
 * @author 陈坤鹏
 */
@Data
public class GoodsListItemVO implements Serializable {


    /**
     * 编号
     */
    @ApiModelProperty("编号")
    private Long id;

    /**
     * 是否启用,1=启用,0=未启用
     */
    @ApiModelProperty("是否启用")
    private Integer enable;

    /**
     * 数据创造时间
     *//*
    @ApiModelProperty("数据创造时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime gmtCreate;

    *//**
     * 数据最后修改时间
     *//*
    @ApiModelProperty("数据最后修改时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime gmtModified;*/

    /**
     * 商品编码
     */
    @ApiModelProperty("商品编码")
    private String code;

    /**
     * 商品名称
     */
    @ApiModelProperty("商品名称")
    private String name;

    /**
     * 商品型号
     */
    @ApiModelProperty("商品型号")
    private String model;

    /**
     * 商品类别
     */
    @ApiModelProperty("商品类别")
    private Long typeId;

    private String type;

    /**
     * 商品单位
     */
    @ApiModelProperty("商品单位")
    private String unit;

    /**
     * 上次采购价格
     */
    @ApiModelProperty("上次采购价格")
    private BigDecimal lastPurchasingPrice;

    /**
     * 采购价格  成本价  假如价格变动 算平均值
     */
    @ApiModelProperty("平均采购价格")
    private BigDecimal purchasingPrice;

    /**
     * 出售价格
     */
    @ApiModelProperty("出售价格")
    private BigDecimal sellingPrice;

    /**
     * 库存数量
     */
    @ApiModelProperty("库存数量")
    private Integer inventoryQuantity;

    /**
     * 库存下限
     */
    @ApiModelProperty("库存下限")
    private Integer minNum;

    /**
     * 0 初始化状态 1 期初库存入仓库  2  有进货或者销售单据
     */
    @ApiModelProperty("货物状态")
    private Integer state;

    /**
     * 生产厂商
     */
    @ApiModelProperty("生产厂商")
    private String producer;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remarks; // 备注

    //损态，该注解使字段只作为映射，不会作为数据库的表字段
    private transient Integer saleTotal;// 销售总量，不记录在数据库表中


}
